package com.campusbackend.service;

import com.campusbackend.entity.SystemNotification;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 系统通知表 服务类
 * </p>
 *
 * @author yezi
 * @since 2025-07-29
 */
public interface SystemNotificationService extends IService<SystemNotification> {

    /**
     * 分页查询系统通知
     * @param page 页码
     * @param size 每页数量
     * @param status 状态筛选（可选）
     * @return 分页结果
     */
    IPage<SystemNotification> getNotificationPage(int page, int size, Integer status);

    /**
     * 根据ID查询通知详情
     * @param id 通知ID
     * @return 通知详情
     */
    SystemNotification getNotificationById(Long id);

    /**
     * 创建系统通知
     * @param title 标题
     * @param content 内容
     * @param summary 摘要
     * @param status 状态
     * @param publisherId 发布者ID
//     * @param publisherName 发布者姓名
     * @return 创建的通知
     */
    SystemNotification createNotification(String title, String content, String summary, 
                                        Integer status, Long publisherId);

    /**
     * 更新系统通知
     * @param id 通知ID
     * @param title 标题
     * @param content 内容
     * @param summary 摘要
     * @param status 状态
     * @return 更新后的通知
     */
    SystemNotification updateNotification(Long id, String title, String content, String summary, Integer status);

    /**
     * 删除系统通知（软删除）
     * @param id 通知ID
     * @return 是否删除成功
     */
    boolean deleteNotification(Long id);

    /**
     * 增加浏览次数
     * @param id 通知ID
     */
    void incrementViewCount(Long id);
}
